// 默认rollup 打包的时候会查找当前目录下 rollup.config.js这个文件
// 采用es模块来编写配置文件

// node中有模块规范默认是 commonjs , 也可以改成esm模块规范
// ts
import ts from "rollup-plugin-typescript2";
// node 解析
import { nodeResolve } from "@rollup/plugin-node-resolve";
import path from "path";
import { fileURLToPath } from "url";
import serve from "rollup-plugin-serve";

// import.meta.url ===>当前文件的绝对路径 file://xxxx/xxx/xxx
const __filename = fileURLToPath(import.meta.url); // 当前文件的绝对路径
const __dirname = path.dirname(__filename); // 当前文件所在的文件夹目录 绝对路径
console.log(import.meta.url, __filename);
// 打包的配置对象
export default {
  // 项目入口
  input: "./src/index.ts",
  // 打包输出
  output: {
    file: path.resolve(__dirname, "dist/bundle.js"), // 当前的文件在当前目录下的dist目录
    format: "iife", //  format: "iife"生成(function(){})()
    sourcemap: true, // 源码调试功能
  },
  plugins: [
    // node解析在node_modules第三方包的入口入口文件可以是js 也可以是ts，入口一般js,但自己往node_modules,加可能有ts结尾的文件
    nodeResolve({
      extensions: [".js", ".ts"],
    }),
    // 指定用哪个tsconfig.json编译
    ts({
      tsconfig: path.resolve(__dirname, "tsconfig.json"),
    }),
    // 启动本地服务
    serve({
      // 端口号
      port: 300,
      // 打开静态页面
      openPage: "/public/index.html",
      // 自动打开页面
      open: true,
    }),
  ],
};
